/*Passando um List<String> onde recebe um List, e adiconando um
 * String, um integer e um objeto empregado tudo ocorre normalmente
 * por causa da convivencia
 * 
 * Quando se tenta adicionar um Gato em um array de cachorros e lancada uma ArrayStoreException
 * 
 * 
 */
package JUNHO.genericos;

import java.util.ArrayList;
import java.util.List;

public class Genericos26 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		List<Integer> lista = new ArrayList<Integer>();
		lista.add(new Integer(10));
		lista.add(new Integer(15));
		lista.add(new Integer(15)+2);
		lista.add(new Integer(15)+new Integer(15));
		Soma s = new Soma();
		
		//Passando um List<String> onde recebe um List
		s.adicionaElemento(lista);
		System.out.println(lista);

	}

}

class Soma
{
	public void adicionaElemento(List l)
	{
		l.add(new Integer(100));
		l.add(new String("Sersoft"));
		l.add(new Empregado("Roberto"));
	}
}

class Empregado
{
	String nome;
	
	public Empregado(String n) {
		// TODO Auto-generated constructor stub
		nome = n;
	}
	
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return this.nome;
	}
}